package com.gengzp.system.mapper;

import com.gengzp.common.model.serviceGovernance.entity.ServiceGovernance;
import com.gengzp.common.model.serviceGovernance.req.PageServiceGovernanceReq;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName ServiceGovernanceMapper
 * @Description 服务治理模块 Mapper 层接口
 * @Author gengzp
 * @Date 2025/10/14 10:41
 */
@Mapper
public interface ServiceGovernanceMapper {

    /**
     * 插入一条服务治理信息
     *
     * @param serviceGovernance 服务治理信息
     */
    void insertServiceGovernance(ServiceGovernance serviceGovernance);

    /**
     * 根据id更新服务治理信息
     *
     * @param serviceGovernance 服务治理信息
     */
    void updateServiceGovernanceById(ServiceGovernance serviceGovernance);

    /**
     * 根据id删除服务治理信息
     *
     * @param id 服务治理id
     */
    void deleteServiceGovernanceById(@Param("id") Long id);

    /**
     * 根据id查询服务治理信息
     *
     * @param id 服务治理id
     * @return 服务治理信息
     */
    ServiceGovernance selectServiceGovernanceById(@Param("id") Long id);

    /**
     * 根据服务名称查询服务治理信息
     *
     * @param serviceName 服务名称
     * @return 服务治理信息
     */
    ServiceGovernance selectServiceGovernanceByServiceName(@Param("serviceName") String serviceName);

    /**
     * 根据服务标题查询服务治理信息
     *
     * @param serviceTitle 服务标题
     * @return 服务治理信息
     */
    ServiceGovernance selectServiceGovernanceByServiceTitle(@Param("serviceTitle") String serviceTitle);

    /**
     * 根据前后端类型查询服务治理信息
     *
     * @param frontBackType 前后端类型
     * @return 服务治理列表
     */
    List<ServiceGovernance> selectGovernanceByFrontBackType(@Param("frontBackType") Integer frontBackType);

    /**
     * 分页查询服务治理信息
     *
     * @param req 分页查询参数
     * @return 服务治理信息列表
     */
    List<ServiceGovernance> pageQueryServiceGovernance(PageServiceGovernanceReq req);

}
